package com._51cto.healthy.base;

import java.util.List;

public interface BaseService<T>{
    /**
     * 实现类重写该方法保证调用的是对应子类
     * 面向对象特性：多态
     * @return
     */
    BaseMapper<T> getDao();
    /**
     * 查询所有
     * @return
     */
    default List<T> queryAll(){
        return getDao().queryAll();
    }
    /**
     * 根据主键查询
     * @param pk
     * @return
     */
    default T queryByPK(Integer pk){
        return getDao().queryByPK(pk);
    }
    /**
     * 默认实现删除的方法
     * @param pk
     * @return
     */
    default void deleteByPK(Integer pk){
        if (getDao().deleteByPK(pk)!=1) {
            throw new RuntimeException("删除失败");
        }
    }
    /**
     * 默认实现删除的方法
     * @param entity
     * @return
     */
    default void insert(T entity){
        if (getDao().insert(entity)!=1) {
            throw new RuntimeException("添加失败");
        }
    }
    /**
     * 默认实现修改的方法
     * @param entity
     * @return
     */
    default void update(T entity){
        if (getDao().update(entity)!=1) {
            throw new RuntimeException("修改失败");
        }
    }
}
